home *** CD-ROM | disk | FTP | other *** search
/ Aminet 31 / Aminet 31 (1999)(Schatztruhe)[!][Jun 1999].iso / Aminet / dev / obero / OberonAModules.lha / CDPlay.Mod < prev    next >
Text File  |  1999-02-26  |  5KB  |  232 lines

  1. (*
  2. Converted from the C-includes by Morten Bjergstrøm
  3. Latest revision: 7/9/1997
  4. CDPlay.MOD ©1997-99 Morten Bjergstrøm
  5. EMail: mbjergstroem@hotmail.com
  6. *)
  7.  
  8.  
  9.  
  10. <*STANDARD-*>
  11. MODULE [2] CDPlay;
  12.  
  13. IMPORT
  14.   e:=Exec, Kernel;
  15.  
  16. CONST
  17.   CDPlayName   *="cdplay.library";
  18.   CDPlayVersion*=37;
  19.  
  20.  
  21.  
  22.  
  23.   devtypeDirectAcces*     =00H;
  24.   devtypeSequentialAccess*=01H;
  25.   devtypePrinter*         =02H;
  26.   devtypeProcessor*       =03H;
  27.   devtypeWriteOnce*       =04H;
  28.   devtypeCDROM*           =05H;
  29.   devtypeScanner*         =06H;
  30.   devtypeOptical*         =07H;
  31.   devtypeMediumChanger*   =08H;
  32.   devtypeCommunications*  =09H;
  33.   devtypeASCIT81*         =0AH;
  34.   devtypeACSIT82*         =0BH;
  35.   devtypeUnknown*         =-1;
  36.  
  37.   ansiNone* =00H;
  38.   ansiSCSI1*=01H;
  39.   ansiSCSI2*=02H;
  40.  
  41.   respSCSI1*=00H;
  42.   respCCS*  =01H;
  43.   respSCSI2*=02H;
  44.  
  45.   iflagRemovable* =1;
  46.   iflagAENC*      =2;
  47.   iflagRelAddress*=4;
  48.   iflag16WideData*=8;
  49.   iflag32WideData*=16;
  50.   iflagSync*      =32;
  51.   iflagLinked*    =64;
  52.   iflagCMDQue*    =128;
  53.   iflagSoftReset* =256;
  54.   iflagTrmIop*    =512;
  55.  
  56.  
  57.   tocSubChanNotAvail*       =00H;
  58.   tocSubChanCurrentPos*     =01H;
  59.   tocSubChanMediaCatalogNum*=02H;
  60.   tocSubChanIsRc*           =03H;
  61.   tocSubChanReserved*       =-1;
  62.  
  63.  
  64.   iflagPreEmphasis*   =1;
  65.   iflagCopyProhibited*=2;
  66.   iflagAudioTrack*    =4;
  67.   iflag2Chan*         =8;
  68.  
  69.  
  70.   scsiStatNoDisk* =0;
  71.   scsiStatPlaying*=1;
  72.   scsiStatStopped*=2;
  73.   scsiStatPauses* =3;
  74.  
  75.  
  76. TYPE
  77.   CDRequestPtr* =POINTER TO CDRequest;
  78.   CDCapacityPtr*=POINTER TO CDCapacity;
  79.   CDInquiryPtr* =POINTER TO CDInquiry;
  80.   CDPTOCPtr*    =POINTER TO CDPTOC;
  81.   CDTimePtr*    =POINTER TO CDTime;
  82.   CDVolumePtr*  =POINTER TO CDVolume;
  83.  
  84.  
  85.  
  86.   CDTrack*=RECORD;
  87.     trPosition*:e.ULONG;
  88.     trFlags*   :e.ULONG;
  89.     trSubChan* :e.UBYTE;
  90.   END;
  91.  
  92.  
  93.   CDInquiry*=RECORD
  94.     cdiFlags*         :e.ULONG;
  95.     cdiDeviceType*    :e.UBYTE;
  96.     cdiANSIVersion*   :e.UBYTE;
  97.     cdiResponseFormat*:e.UBYTE;
  98.     cdiISOVersion*    :e.UBYTE;
  99.     cdiECMAVersion*   :e.UBYTE;
  100.     cdiVendorID*      :ARRAY 9 OF e.UBYTE;
  101.     cdiProductID*     :ARRAY 17 OF e.UBYTE;
  102.     cdiRevisionLevel* :ARRAY 5 OF e.UBYTE;
  103.     cdiVendorSpecifik*:ARRAY 21 OF e.UBYTE;
  104.     cdiReserved*      :ARRAY 36 OF e.UBYTE;
  105.   END;
  106.  
  107.  
  108.   CDCapacity*=RECORD
  109.     cdcMaxSector* :e.ULONG;
  110.     cdcSectorSize*:e.ULONG;
  111.     cdcCapacity*  :e.ULONG;
  112.   END;
  113.  
  114.  
  115.   CDTime*=RECORD
  116.     cdtTrackCurBase*     :e.ULONG;
  117.     cdtTrackRemainBase*  :e.ULONG;
  118.     cdtTrackCompleteBase*:e.ULONG;
  119.     cdtAllCurBase*       :e.ULONG;
  120.     cdtAllRemainBase*    :e.ULONG;
  121.     cdtAllCompleteBase*  :e.ULONG;
  122.   END;
  123.  
  124.  
  125.   CDPTOC*=RECORD
  126.     cdptocTOCSize*   :e.ULONG;
  127.     cdptocFirstTrack*:e.UBYTE;
  128.     cdptocLastTrack* :e.UBYTE;
  129.   END;
  130.  
  131.  
  132.   CDVolume*=RECORD
  133.     cdvOutput*:ARRAY 4 OF e.UBYTE;
  134.     cdvVolume*:ARRAY 4 OF e.UBYTE;
  135.   END;
  136.  
  137.  
  138.   CDRequest*=RECORD
  139.     cdrRequest*       :e.IOStdReqPtr;
  140.     cdrMsgPort*       :e.MsgPortPtr;
  141.     cdrCapacity*      :CDCapacityPtr;
  142.     cdrInquiry*       :CDInquiryPtr;
  143.     cdrTOC*           :CDPTOCPtr;
  144.     cdrTime*          :CDTimePtr;
  145.     cdrVolume*        :CDVolumePtr;
  146.     cdrID*            :ARRAY 20 OF e.UBYTE;
  147.     cdrActive*        :e.UBYTE;
  148.     cdrCurrentTrack*  :e.UBYTE;
  149.     cdrCurrentAddress*:e.ULONG;
  150.     cdrSCSISense*     :e.UBYTE;
  151.     cdrSCSIData*      :e.UBYTE;
  152.     cdrTOCBuf*        :e.UBYTE;
  153.   END;
  154.  
  155.  
  156. VAR
  157.   base-:e.LibraryPtr;
  158.  
  159. PROCEDURE OpenDrive* [base,-30]
  160.   (Device [8]:e.STRPTR;
  161.    Unit   [0]:e.ULONG)
  162.   :CDRequestPtr;
  163.  
  164. PROCEDURE CloseDrive* [base,-36]
  165.   (CDReq [9]:CDRequestPtr)
  166.   :BOOLEAN;
  167.  
  168. PROCEDURE Update* [base,-42]
  169.   (CDReq [9]:CDRequestPtr)
  170.   :e.ULONG;
  171.  
  172. PROCEDURE Inquiry* [base,-48]
  173.   (VAR CDInq [8]:CDInquiryPtr;
  174.    CDReq     [9]:CDRequestPtr)
  175.   :e.ULONG;
  176.  
  177. PROCEDURE LockDrive* [base,-54]
  178.   (State [0]:e.ULONG;
  179.    CDReq [9]:CDRequestPtr)
  180.   :e.ULONG;
  181.  
  182. PROCEDURE Open* [base,-60]
  183.   (CDReq [9]:CDRequestPtr)
  184.   :e.ULONG;
  185.  
  186. PROCEDURE Close* [base,-66]
  187.   (CDReq [9]:CDRequestPtr)
  188.   :e.ULONG;
  189.  
  190. PROCEDURE Play* [base,-72]
  191.   (Start [0]:e.ULONG;
  192.    CDReq [9]:CDRequestPtr)
  193.   :e.ULONG;
  194.  
  195. PROCEDURE Pause* [base,-78]
  196.   (State [0]:e.ULONG;
  197.    CDReq [9]:CDRequestPtr)
  198.   :e.ULONG;
  199.  
  200. PROCEDURE Stop* [base,-84]
  201.   (CDReq [9]:CDRequestPtr)
  202.   :e.ULONG;
  203.  
  204. PROCEDURE Jump* [base,-90]
  205.   (Offset [0]:LONGINT;
  206.    CDReq  [9]:CDRequestPtr)
  207.   :e.ULONG;
  208.  
  209. PROCEDURE Next* [base,-96]
  210.   (CDReq [9]:CDRequestPtr)
  211.   :e.ULONG;
  212.  
  213. PROCEDURE Prev* [base,-102]
  214.   (CDReq [9]:CDRequestPtr)
  215.   :e.ULONG;
  216.  
  217.  
  218.  
  219. PROCEDURE* [0] CloseLib (VAR rc : LONGINT);
  220.  
  221. BEGIN (* CloseLib *)
  222.   IF base # NIL THEN e.CloseLibrary (base) END
  223. END CloseLib;
  224.  
  225.  
  226. BEGIN
  227.  
  228.   base := e.OpenLibrary (CDPlayName, 0);
  229.  
  230.   IF base # NIL THEN Kernel.SetCleanup (CloseLib) END;
  231. END CDPlay.
  232.